It has been considered to apply a resistance change memory such as a magnetic random access memory (MRAM) to, for example, a cache memory of a microcomputer (processor) designed to consume a low current, as a nonvolatile and high-speed memory. However, the resistance change memory wastefully consumes a write current in a write operation. For example, although memory cells vary in write time, the write time is constant in all the memory cells.
Therefore, the write time is set to a time sufficient to complete writings in all the memory cells. In this case, within the write time, a wasteful write current flows through memory cells requiring no writings (memory cells having data unchanged before and after a writing) and through memory cells which have completed writings earlier.